/**
 * DEPENDENCIAS:
 * modulo meusPopups.js
 * 
 * FUNCIONALIDADE:
 * funcoes para tratamento de excessões. 
 */

/*
 funcao que redireciona a aplicacao para a pagina de login em caso de timeout
 */
function ajaxSessionTimeout(){
	window.location = 'entrar';
}
 
 /*
  funcao que, caso haja jquery, configura um codigo 901 como erro de timeout na chamada ajax
  */
!function( $ )
{
	$.ajaxSetup({
		statusCode: 
		{
			901: ajaxSessionTimeout
		},
		scriptCharset: "utf-8" , 
		"contentType": "application/json; charset=utf-8", 
	});
}(window.jQuery);

/*
funcao que trata os diversos codigos de erro
e o codigo de erro  901 criado 
exibe um pop up modal com o erro
 */
function trataErro(xhr, textStatus, errorThrown){
	if(xhr.status==901){
		return;
	}
	try{
		var msg = $.parseJSON(xhr.responseText);
		var msgErro ='';
		if(xhr.status==0){
			msgErro='Você está offline ';
		}else if(xhr.status==404){
			msgErro='Requisição/página não encontrada ';
		}else if(xhr.status==901){
			return;
		}else if(xhr.status==500){
			msgErro='Erro no servidor: ' + msg.localizedMessage;
		}else if(textStatus=='parseerror'){
			msgErro='Erro na transformação do JSON para objeto ' + msg.localizedMessage;
		}else if(textStatus=='timeout '){
			msgErro='Requisicao violou o tempo limite. ' + msg.localizedMessage;
		}else{
			msgErro='Erro desconhecido '; 
		}
		showDialog(textStatus+" - "+errorThrown,msgErro);
	}catch(e){
		showDialog('Erro', errorThrown.message + "\nResponse: " + xhr.responseText);
	}
}